第六章:Gabe Newell 的越獄行動
2026 年 3 月,Steam 的月度硬體調查報告裡,Linux 的市佔率悄悄爬上 5.33%——歷史新高。這個數字看起來微不足道。但它背後站著超過五百萬台 Steam Deck——一台掌上型遊戲機,跑的是 Arch Linux,卻能玩 Steam 上超過十萬款 Windows 遊戲。
你在上面玩《艾爾登法環》。按下「開始」,畫面出來了,手把震動了。你不知道你在用 Linux。你不知道在你按下按鈕的那一瞬間,有一座看不見的翻譯機器在底下全速運轉——把遊戲發出的每一個 DirectX 指令,即時轉換成 Linux 的 Vulkan API,再送進 AMD 的開源驅動,最後才變成螢幕上的像素。
整條管線,沒有用到一行微軟的原始碼。沒有任何一份授權合約。沒有任何人的許可。
第二章講過:DirectX 是一把鎖。它把整個 PC 遊戲生態鎖死在 Windows 上,鎖了三十年。每一個用 Direct3D 寫引擎的工作室,都是那道牆的一塊磚。
打開這把鎖的人,恰好是當年幫微軟裝上這把鎖的人之一。
I. 作案動機
2012 年 7 月 25 日,西雅圖 Casual Connect 遊戲研討會。Gabe Newell 走上台,說了一句讓全場靜下來的話:
「Windows 8 對 PC 生態裡的每一個人來說,都是一場災難。」
這句話從別人嘴裡講出來,是牢騷。從 Newell 嘴裡講出來,是宣戰。
因為 Newell 比在場所有人都清楚微軟接下來要做什麼。他在微軟待了十三年——他自稱是「Windows 前三個版本的製作人」。1996 年,他還是 Windows 95 團隊裡那位飛去德州,把 id Software 拉進 DirectX 陣營的年輕產品經理。第二章記錄過那筆交易。他親手幫微軟贏了那一局。
他離開微軟之後創辦 Valve,做了 Half-Life、做了 Counter-Strike、做了 Portal。但他真正改變產業的不是遊戲——是 Steam。
2003 年上線的 Steam,是 PC 遊 戲的數位發行平台。十年之內,它吃下了 PC 遊戲市場超過七成的銷售額。每一筆交易,Valve 抽三成。到了 2012 年,Steam 上有超過兩千五百款遊戲,全球活躍帳號數以千萬計。Valve 從一家遊戲開發商,變成了一家收租的平台商。
但 Steam 有一個致命的弱點——它跑在 Windows 上。
Valve 的整個商業帝國,建立在微軟的地基上。微軟隨時可以改規則。而 2012 年,微軟準備做的,恰好就是改規則。
Windows 8 引入了 Windows Store——一個整合在作業系統裡的應用商店。介面仿照 iPad、交易流程仿照 App Store、抽成模式同樣仿照 Apple。微軟的意圖不需要猜:如果所有 Windows 軟體都通過 Windows Store 發行,微軟就能像 Apple 一樣,對每一筆交易抽成,而 Steam 就會從「唯一的通道」降格為「眾多商店之一」。
Newell 看穿了這步棋。不是因為他比別人聰明,是因為他在微軟待過十三年,親眼看過那個組織怎麼運作。微軟不會一夜之間封殺 Steam——那太粗暴,會引發反壟斷訴訟。微軟會慢慢來。先是在 Windows Store 裡提供獨佔內容。然後是讓 Store 的 app 在系統層面享有安裝優先權。然後是讓第三方安裝包多一個「你確定要安裝來路不明的軟體嗎?」的警告彈窗。然後是把那個彈窗的「確認」按鈕藏得越來越深。
溫水煮青蛙。Newell 見過微軟用這套手法對付 Netscape、對付 Java、對付 OpenGL。他自己就是那口鍋裡出來的人。
所以他在台上接著說了第二句話:「我們要把 Steam 上所有兩千五百款遊戲,帶到 Linux。」
這句話聽起來像空話。2012 年的 Linux 桌面市佔率不到 2%,遊戲生態幾乎是零。但 Newell 不是在講市佔率。他在講的是——逃生門。
他要讓 Steam 可以不需要 Windows。不是明天,不是明年。是在微軟收緊繩索之前,把門打開。
上一章講過,AI 研究員早在這之前就已經逃往 Linux——他們需要的自由度,Windows 的封閉架構給不了。Newell 要做的事,是讓第二批難民跟上去:遊戲玩家。
II. 武器鍛造
要在 Linux 上跑 Windows 遊戲,正統的做法是請每一家遊戲工作室出一個 Linux 原生版本。
這條路走不通。原因在第二章已經解釋過了:DirectX 鎖定效應。一個用 Direct3D 寫了五年的引擎,移植到 Linux 的成本等於從頭寫。沒有工作室願意花這個錢,也沒有工作室看得到 Linux 上有足夠多的玩家來回本。
Newell 選了一條完全不正統的路:不修改任何一行遊戲的原始碼,在 Linux 底下架一座翻譯機器,把遊戲發出的每一個 Windows API 呼叫——包括 DirectX——即時轉換成 Linux 聽得懂的東西。
這個想法不是 Valve 發明的。它的起源可以追溯到 1993 年——一個叫 Wine 的開源專案。Wine 的全名是 "Wine Is Not an Emulator"。它的目標是在 Linux 上實作 Windows API 的行為,讓 Windows 程式以為自己跑在 Windows 上,實際上底下是 Linux 核心在幹活。
Wine 做了二十年。它能跑一些 Windows 的辦公軟體、簡單的工具程式。但遊戲——尤其是 3D 遊戲——幾乎不可能。因為 3D 遊戲不只呼叫 Windows API,它還重度依賴 Direct3D,而 Direct3D 的行為深深纏繞在 Windows 專屬的 GPU 驅動架構裡。Wine 早年的做法是把 Direct3D 翻譯成 OpenGL——但 OpenGL 的設計太高階,翻譯 Direct3D 那些貼近硬體的低階操作時,開銷大到吃掉效能。一款在 Windows 上跑到六十幀的遊戲,經過 Wine 翻譯之後剩不到一半。
突破口出現在 2017 年。一位網名 doitsujin 的開發者 Philip Rebohle 啟動了一個叫 DXVK 的專案。DXVK 做一件事:把 DirectX 9、10、11 的 API 呼叫,翻譯成 Vulkan——那套由 Khronos Group 維護的新一代跨平台繪圖 API。Vulkan 和已經死去的 OpenGL 不同:它是從零設計的,有完整的 Linux 驅動支援,效能逼近原生。
如果 DXVK 能做到足夠精準的翻譯,理論上,任何一款 DirectX 遊戲都可以透過這條管線跑起來:
遊戲發出 DirectX 呼叫 → DXVK 即時翻譯成 Vulkan → Linux 的開源 GPU 驅動接手 → 像素出現在螢幕上。
理論上。
實際上,DirectX 有無數沒有寫在文件裡的行為。Shader 編譯的邊界情況、記憶體對齊的隱含假設、多執行緒渲染的時序依賴、某些遊戲引擎針對特定 NVIDIA 驅動版本做的 hack——每一款遊戲都可能踩到不同的地雷。DXVK 的開發者必須逆向工程這些行為,一個一個修。
Valve 看到了 DXVK,做了一件決定性的事:直接贊助 Rebohle 全職開發。 然後把 DXVK 連同修改版的 Wine、加上一堆效能補丁和相容修正,打包成一個東西,內建到 Steam 客戶端裡。
這個東西叫 Proton。
2018 年 8 月 21 日,Proton 正式發佈。首批認證的遊戲只有 27 款——其中包括《Doom》(2016)和《Quake》。但它的設計哲學才是關鍵:玩家不需要知道 Wine 是什麼,不需要知道 DXVK 是什麼,不需要設定任何東西。 在 Steam 上按下「安裝」,按下「開始」。Proton 在底下默默運轉。
Valve 同時僱用了 Wine 和 Mesa(Linux 的開源 GPU 驅動堆疊)的核心開發者,把他們從社群志願者變成 Valve 的全職員工。它資助 CodeWeavers——一家專門做 Wine 商業化的公司——加速修復相容問題。它還開放了 ProtonDB,一個社群驅動的相容性資料庫,讓全球玩家回報哪些遊戲能跑、哪些有問題、怎麼繞過。
Valve 在做的事,換一個說法就是:出錢養一支軍隊,逆向工程微軟三十年來在 DirectX 上累積的所有行為。
但翻譯只是管線的上半段。下半段——把翻譯好的 Vulkan 指令送進 GPU——要靠驅動程式。而 Valve 在這裡做了一個影響整個越獄計畫成敗的選擇:它選了 AMD,不選 NVIDIA。
表面上看,這很反直覺。NVIDIA 在效能上壓著 AMD 打。一台掌機要在最小的功耗範圍內擠出最大的畫面品質,用 NVIDIA 不是更合理嗎?
不是。因為 NVIDIA 的 Linux GPU 驅動是閉源的。
閉源意味著 Valve 的工程師碰不到驅動的原始碼——不能改、不能修 bug、不能針對 Proton 的翻譯行為做深度優化。你把 DirectX 翻譯成 Vulkan 已經是一層精密手術了;如果手術做完之後,最後一段管線是一個你完全看不見內部的黑箱,任何問題都只能等 NVIDIA 自己出更新——這場越獄就永遠是半成品。
AMD 走了完全相反的路。它主動公開 GPU 硬體文件,支持 Mesa 專案裡一個叫 RADV 的開源 Vulkan 驅動。RADV 不是 AMD 自己寫的——它是開源社群寫的,而社群裡最活躍的貢獻者,恰好就是 Valve 的員工。Valve 的工程師甚至嫌 AMD 原廠的 shader 編譯器不夠快,自己寫了一個叫 ACO 的替代品塞進 RADV 裡。效能比 AMD 自家的還好。
2025 年,AMD 做了一個歷史性的決定:正式停止自家的 Linux Vulkan 驅動,把所有資源轉移到社群的 RADV。換句話說——AMD 官方承認,Valve 工程師維護的驅動比 AMD 自己寫的更好。
這就是 Valve 選 AMD 的真正原因。 Proton 負責上半段(翻譯 DirectX → Vulkan),RADV 負責下半段(Vulkan → GPU 指令)。兩段都是開源的,兩段都由 Valve 的工程師深度參與。整條管線從頭到尾透明——沒有任何一個環節是黑箱。
如果中間夾了 一個 NVIDIA 的閉源驅動,端到端的優化就做不到。Steam Deck 那個「按一個鍵就玩」的體驗,就永遠差最後一哩。
這個選擇有一個更深的意涵,但要到第七章才能完成結算。NVIDIA 的閉源策略讓它輸掉了 Linux 遊戲硬體——Valve 不要它。但同一套閉源策略,在另一個戰場上——AI——卻讓 NVIDIA 贏得徹底。為什麼?因為遊戲的鎖和 AI 的鎖,深度完全不同。
但那是後話。
III. 第一次突圍
但 Proton 不是 Valve 的第一次嘗試。它是第二次。
第一次是 2013 年。Newell 在「災難」演講的一年後,公佈了一個野心勃勃的計畫:SteamOS——Valve 自己的 Linux 作業系統;Steam Controller——Valve 自己的手把;Steam Machine——由第三方硬體廠商製造、跑 SteamOS 的客廳遊戲主機。
這個計畫的邏輯很清楚:如果 Windows 是牢房,那就造一台不需要 Windows 的遊戲機,放到消費者的客廳裡。
2015 年 11 月,第一批 Steam Machine 上市。Alienware、Zotac、CyberPowerPC——好幾家廠商推出了自己的型號。
七個月後,總銷量不到五十萬台。
失敗的原因,在事後看來殘忍地清晰。2015 年的 SteamOS 沒有 Proton——因為 Proton 還不存在。當時 Linux 上能跑的 Steam 遊戲不到一千款,全部是原生移植,大部分是獨立小品。一個消費者花了跟 PlayStation 差不多的錢,買回一台只能玩十分之一 Steam 遊戲庫的機器——有什麼理由不退貨?
到了 2016 年,幾乎所有硬體廠商都停產了自己的 Steam Machine。Valve 在 2018 年把 Steam Machine 的頁面從商店首頁移除。Steam Controller 在 2019 年停產清倉。
以任何商 業標準來衡量,這是一場徹底的失敗。
但有一件事沒有停。
Valve 對 Linux 的投資從未中斷。 Steam Machine 死了,SteamOS 繼續開發。Wine 的贊助繼續。Mesa 的工程師繼續領 Valve 的薪水。DXVK 在 2017 年冒出來的時候,Valve 第一時間伸手。
這裡有一個細節值得停下來看:Valve 是一家私人公司。沒有上市,沒有股東,沒有華爾街分析師每季盯著你的財報問「Linux 投資的 ROI 在哪裡」。如果 Valve 是上市公司,Steam Machine 失敗之後,Linux 計畫會在下一次董事會上被砍。
它沒有被砍。因為唯一需要說服的人,是 Gabe Newell 自己。而 Newell 看得比一個季度更遠。
Newell 自己在 2020 年回顧時說過:「我們當時推的硬體,在那個時候是極不完整的。」
他知道 2015 年太早了。但他也知道,如果不先把錢撒下去——養工程師、養社群、養開源生態——等到時機對了,他手上什麼都沒有。
所以他等。等到 DXVK 出現。等到 Proton 能把六成以上的 Steam 遊戲翻譯到可玩的程度。等到 AMD 的 APU 成熟到可以塞進一台掌機裡。
然後,他出第二手。
IV. 越獄
2022 年 2 月 25 日,Steam Deck 上市。
一台掌上型遊戲機。7 吋螢幕、AMD 的客製 APU——Zen 2 CPU 加 RDNA 2 GPU、16GB RAM。定價 399 美元起。跑的是 SteamOS 3.0——基於 Arch Linux,不再是 2015 年那個半成品的 Debian。
它能玩 Steam 上超過八成的 Windows 遊戲。不是原生 Linux 遊戲,是 Windows 遊戲,通過 Proton 即時翻譯,在 Linux 上跑。
玩家不知道自己在用 Linux。他們只知道按下按鈕,遊戲就出來了——跟 Nintendo Switch 一樣。